Модель Take-Grant

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Модель Take-Grant (от англ. take «брать», grant «давать») — это формальная модель, используемая в области компьютерной безопасности, для анализа систем дискреционного разграничения доступа; подтверждает либо опровергает степени защищенности данной автоматизированной системы, которая должна удовлетворять регламентированным требованиям. Модель представляет всю систему как направленный граф, где узлы — либо объекты, либо субъекты[1]. Дуги между ними маркированы, и их значения указывают права, которые имеет объект или субъект (узел). В модели доминируют два правила: «брать» и «давать». Они играют в ней особую роль, переписывая правила, описыающие допустимые пути изменения графа. В общей сложности существует 4 правила преобразования:

  • правило «брать»;
  • правило «давать»;
  • правило «создать»;
  • правило «удалить»;

Можно воспроизвести состояния, в которых будет находиться система в зависимости от распределения и изменения прав доступа. Следовательно, можно проанализировать возможные угрозы для данной системы.

Обычная модель[править | править код]

  • О — множество объектов (файлы, сегменты памяти и т. д.);
  • S — множество субъектов (пользователи, процессы системы);
  • R = {r1, r2, r3, r4, …, rn} U {t, g} — множество прав доступа;
  • t [take] — право брать «права доступа»;
  • g [grant] — право давать «права доступа»;
  • G = (S, O, E) — конечный, помеченный, ориентированный граф без петель;
  • × — объекты, элементы множества О;
  • • — субъекты, элементы множества S;
  • E ∈ O x O x R — дуги графа. Состояние системы описывается её графом.

Преобразование G в граф G' = правило и обозначается:

Правило «брать»[править | править код]

Брать = take(r, x, y, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

То есть субъект S берет у объекта X права r на объект Y.

Правило «давать»[править | править код]

Давать = grant(r, x, y, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

То есть субъект S дает объекту X права r на объект Y.

Правило «создать»[править | править код]

Создать = create(p, x, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

То есть субъект S создает p-доступный объект X.

Правило «удалить»[править | править код]

Удалить = remove(r, x, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

То есть субъект S удаляет права доступа r на объект X.

Примеры реализации[править | править код]

В графе Р1 и Р2 составляют субъекты (возможные пользователи), а также Ds и Fs представляют объекты, каталоги и файлы, соответственно. Право «чтение» было изменено на правило «брать» для всех уровней, за исключением фактически файловых уровней в каталогах. Право «записи» также изменилось правилом «давать». Становится ясно из этого графа: если субъект имеет право чтения(брать) объекта, то он может иметь право чтения любых других объектов, на которые этот первый объект имеет какие-то права. Аналогично, если субъект имеет право записи (давать) объекта, он может предоставить любую из своих прав на этот объект.

Графическое представление структуры каталогов.






Посредством комбинации из указанных выше четырех правил, новый файл может быть добавлен в каталог структуры. И права на чтение или запись, будут назначены согласно правилам использующимся каталогом, в которой этот файл записывается.

Следующие четыре шага необходимы для добавления файла и разрешения права:

  1. P1 создает R/W для нового объекта F7;
  2. P1 принять t для D1 от D;
  3. P1 принять g для D11 с D1;
  4. P1 дарить RW от F7 до D11.
Добавление файла к структуре каталогов





Примечания[править | править код]

  1. Lipton R.J., Snayder L. A linear time algorithm for deciding subject security // Journal of ACM (Addison-Wesley). N.3, 1977. p.455-464

Ссылки[править | править код]

blog.iq74.ru